Before computers, numerical analyses, particularly financial ones, were usually prepared on an accountant's columnar pad or paper spreadsheet, with pencil and calculator in hand. By organising data into columns and rows, such spreadsheets assist the assimilation of information by a reader. The task of preparing a spreadsheet on paper, however, is not quite so fast. Instead, the process tends to be very slow, as each entry must be tediously calculated and entered into the spreadsheet. Since all calculations are the responsibility of the preparer, manually prepared spreadsheets are also prone to errors. Hence, preparation of spreadsheets by hand is slow, tedious, and unreliable.
With the advent of microcomputers, a solution was forthcoming in the form of “electronic spreadsheets.” Better known simply as “spreadsheets,” these software programs provide a computerised replacement for the traditional financial modelling tools: the accountant's columnar pad, pencil, and calculator. In some regards, spreadsheet programs are to those tools what word processors are to typewriters. Spreadsheets offer dramatic improvements in ease of creating, editing, and using financial models.
A typical spreadsheet program configures the memory of a computer to resemble the column/row or grid format of an accountant's columnar pad, thus providing a visible calculator for a user. Because this “pad” exists dynamically in the computer's memory, however, it differs from paper pads in several important ways. Locations in the electronic spreadsheet, for example, must be communicated to the computer in a format which it can understand. A common scheme for accomplishing this is to assign a number to each row in a spreadsheet, a letter to each column, and another letter to each sheet (or page) of the spreadsheet. To reference a location at column A and row 1 of the second page (i.e., the upper-left hand corner), for example, the user types in “B:A1”. In this manner, the spreadsheet defines an addressable storage location or “cell” at each intersection of a row with a column within a given page.
Data entry into an electronic spreadsheet occurs in much the same manner that information would be entered on an accountant's pad. After a screen cursor is positioned at a desired location, the user can enter alphanumeric information. Besides holding text and numeric information, however, spreadsheet cells can store special instructions or “formulas” specifying calculations to be performed on the numbers stored in spreadsheet cells. Such spreadsheet cells can also be defined and named as a range of cells as long as they are arranged as a rectangle or cube set of cells. A typical example of such a named range simply corresponds to a regular table found in an accountant's pad. In this fashion, range names can serve as variables in an equation, thereby allowing precise mathematical relationships to be defined between cells. The structure and operation of a spreadsheet program, including advanced functions such as functions and macros, are documented in the technical, trade, and patent literature.
Electronic spreadsheets offer many advantages over their paper counterparts. For one, electronic spreadsheets are much larger (i.e., hold more information) than their paper counterparts; electronic spreadsheets having thousands or even millions of cells are not uncommon. Spreadsheet programs also allow users to perform “what-if” scenarios. After a set of computational relationships has been entered into a worksheet, thanks to imbedded formulas for instance, the spread of information can be recalculated using different sets of assumptions, with the results of each recalculation appearing almost instantaneously. Performing this operation manually, with paper and pencil, would require recalculating every relationship in the model with each change made. Thus, electronic spreadsheet systems were invented to solve “what-if’ problems, that is, changing an input and seeing what happens to an output.
Cell ranges are used to automate computations in spreadsheets. Whether cells or cell ranges are named or not, they can be referenced within a formula either by a “relative” or an “absolute” reference. Such a reference can be the address of the referenced cell range, or the name of the referenced cell range if it turns that this cell range is named.
It is common to find in electronic spreadsheet based applications some two-dimensional (2D) or three-dimensional (3D) tables which are defined as ranges of cells and which record the values of a function of the form y=f(x), or z=f(x, y). Without losing any generality, the rest of our description will assume a 2D table with associated relationships of the form y=f(x). The values taken by such functions can either follow a theoretical model or represent some experimental measures. In the former case, the cell will typically be filled with a formula representing the theoretical relationship between the input variable (the x parameter) and the output variable (the y parameter). In the later case some cells within the range of cells will contain values corresponding to samples obtained by experimentation, whereas the remaining cells within the range are left empty. Keeping such void cells is generally a problem because these cells, if used as parameters within formulas or functions, lead to ERR cells. It is thus desirable to fill these empty cells with some values. Conventional spreadsheet tools offer some means for that, but with some severe limitations as outlined hereafter. When a range of cells is selected, conventional electronic spreadsheet applications (like Excel from Microsoft Corporation or like 1-2-3 from Lotus Corporation) allow to fill the range in different ways, according to options and parameters that can be specified in menus, sub-menus or dialog boxes.                The conventional range filling means assume that the values within the selected range of cells follow either a linear or exponential law. This may address some specific spreadsheet user needs, but it is generally very constraining to try to approximate any function with only a linear or exponential law.        When the filling function is not explicitly specified by the user, the conventional range filling means determine it on the basis of the two first cells found in the selected range. If these two first cells do not hold values, then the range filling operation has no effect on the selected range. If these two first cells do hold values, then the range filling operation will update the content of all the other cells of the range, even if they previously contained some information. Thus some information may be inadvertently lost.        When a range of cells has been already filled, for instance on the basis of the two first cells, any subsequent change in the value of one of these two first cells does not affect the values taken by all the other cells within the range of cells. This lack of flexibility necessitates a re-run of the range filling operation on the same range of cells.        The conventional range filling means generally assumes that the values found in the cells of the range correspond to the transformation of an arithmetic sequence of values. In other words, the i-th cell of the range is equal to f(i) where f is either a linear or exponential function: f(i)=a*i+b or f(i)=a*bi.        
From the previous points, it is clear that the range filling means available in conventional electronic spreadsheet presents severe limitations which may easily result in false calculations or loss of information. The present invention offers a powerful and efficient solution to this problem by defining a method and a system for filling a range of cells on the basis of a sub-set of “sample” values, with the possibility of persistently and automatically reacting to sample value change or sample value introduction or sample value deletion.